using System;
using System.Collections.Generic;
using System.Text;

namespace [%NAMESPACE%]
{
    public abstract class ContainerBase
    {
        #region Constractor
        public ContainerBase(ItemBase p_parentItem, string p_fieldName, bool p_emptyAllowed)
        {
            parentItem = p_parentItem;
            fieldName = p_fieldName;
            emptyAllowed = p_emptyAllowed;
        }
        #endregion

        #region Methods
        abstract public void SetEmpty();
        abstract public void InitFromSPRepresentation(object obj);
        abstract public object ToSPRepresentation();
        abstract public void ForceUpdate();
        #endregion

        #region Private Helper Methods
        #endregion

        #region Public Properties
        abstract public bool isEmpty { get;}
        public readonly ItemBase parentItem;
        public readonly bool emptyAllowed;
        public readonly string fieldName;
        #endregion
    }
}
